package main

import "fmt"

// 父类
type Human struct {
	name string
	age  int
	sex  string
}

// 记者子类
type Reporter struct {
	Human
	hobby string
}

// 程序员子类
type Devloper struct {
	Human
	worktime int
}

func (h *Human) SayHi() {
	fmt.Printf("大家好，我叫%s,我今年%d岁，我是%s生", h.name, h.age, h.sex)
}

// 记者的方法
func (r *Reporter) SayHello() {
	// 继承父类方法
	r.SayHi()
	fmt.Printf(" 我的爱好是：%s\n", r.hobby)
}

// 程序员的方法
func (d *Devloper) SayHello() {
	d.SayHi()
	fmt.Printf(" 我的工作年限是：%d年\n", d.worktime)
}

func main() {
	r := Reporter{Human{"白岩松", 40, "男"}, "新闻"}
	r.SayHello()
	d := Devloper{Human{"图灵", 32,"男"},10}
	d.SayHello()
}
